<?php 
/**
 * 用户领域数据操作model
 * @author Jinke  mejinke@gmail.com
 * 2010-01-09
 *
 */
class Sphere_Model extends  Model{
	
	public function __construct(){
		$this->_dbName=Dbtool::getDBName('main');
		$this->_table = 'sphere';
		parent::__construct($this);
	}
	
	/**
	 * 根据用户ID及来源ID获取一条领域资料
	 * @param int $uid 用户ID
	 * @param int $sid 来源ID
	 * @return mixed 不存在返回 false
	 */
	public function getByUidAndSid($uid,$sid){
		return $this->where(array('uid'=>$uid,'sid'=>$sid))->getOne();
	}
	
	
	/**
	 * 创建用户 领域记录
	 * @param int $uid 用户ID
	 * @param int $sid 来源ID
	 */
	public function create($uid,$sid){
		//是否存在该记录
		if ($this->getByUidAndSid($uid, $sid))
			return'exists';
		if ($this->insert(array('uid'=>$uid,'sid'=>$sid))){
			//更新用户的已知领域数
			$mod_user = M('user.user');
			return $mod_user->addSpCount($uid);
		}
		return false;
	}
	
	
	/**
	 * 增加用户领域的贡献数
	 * @param int $uid 用户ID
	 * @param int $sid 来源ID
	 * @param int $num 数量  [默认为1]
	 */
	public function addDevoteCount($uid,$sid,$num=1){
		if ($this->getByUidAndSid($uid, $sid))
			return $this->where(array('uid'=>$uid,'sid'=>$sid))->autoAdd('devote',$num);
		else
			return $this->create($uid, $sid);
	}
	
	
	/**
	 * 减少用户领域的贡献数
	 * @param int $uid 用户ID
	 * @param int $sid 来源ID
	 * @param int $num 数量  [默认为1]
	 */
	public function lessenDevoteCount($uid,$sid,$num=1){
		return $this->where(array('uid'=>$uid,'sid'=>$sid))->autoLessen('devote',$num);
	}
}
?>